<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>初始化 state - 紫霞仙子</title>
</head>
<body>
    <div id="root"> </div>

    <script src="../js/react.development.js"></script>
    <script src="../js/react-dom.development.js"></script>
    <script src="../js/babel.min.js"></script>

    <script type="text/babel">
        //设置数据
        class App extends React.Component{

            //构造方法的 this 永远指向 实例对象
            constructor(){
                super();
                //添加 state 属性
                this.state = {
                    isNight: true
                }
                //中间过渡 --- 为实例对象添加一个方法
                // let fn = this.change.bind(this);
                // this.change = fn;

                //3. 为实例添加一个新的方法,并修改 this 为实例对象
                this.change = this.change.bind(this);
                // setState 方法是属于『组件实例对象的』
                
            }

            //2. 设置回调
            change(){
                //setState 方法接收对象类型的数据, 更新state中的状态数据
                this.setState({
                    isNight: !this.state.isNight
                })
            }

            render(){
                return <div>
                        <h2>至尊宝, 我是{this.state.isNight ? '青霞仙子' : '紫霞仙子'}</h2>
                        {/**1. 绑定事件*/}
                        <button onClick={this.change}>点击切换白天与黑夜</button>
                    </div>
            }

 
        }

        ReactDOM.render(<App />, document.querySelector("#root"));



        // function Person(){

        // }

        // //Person.protype 显示原型对象
        // Person.prototype.say = function(){

        // }

        // let me = new Person();

        // me.__proto__ // 隐式原型对象

    </script>
</body>
</html>